package com.flying.io;

import org.junit.jupiter.api.Test;

import java.io.*;

/**
 * @author 刘鹏飞
 * @ClassName TestBUfferReader
 * @Date 2025/2/17 20:01
 * @Created by 刘鹏飞
 * @Description 测试缓冲字符流
 *
 * BufferedReader/BufferedWriter增加了缓存机制，大大提高了读写文本文件的效率。
 *
 * 字符
 */
public class TestBufferedReader {


    /**
     * BufferedReader是针对字符输入流的缓冲流对象，提供了更方便的按行读取的方法：
     * readLine(); 在使用字符流读取文本文件时，我们可以使用该方法以行为单位进行读取
     */

    @Test
    public void test1(){
        // 创建字符缓冲流对象
        try (BufferedReader br = new BufferedReader(new FileReader("doc/songs.txt"))) {
            StringBuilder sb=new StringBuilder();
            String temp;

            while((temp=br.readLine())!=null){
                sb.append(temp+"\r\n");
            }

            System.out.println(sb);

        } catch (IOException e) {
            e.printStackTrace();
        }


    }

    /**
     * BufferedWriter是针对字符输出流的缓冲流对象，
     * 在字符输出缓冲流中可以使用newLine()；方法实现换行处理
     */
    @Test
    public void test2(){
        try (BufferedWriter bw= new BufferedWriter(new FileWriter("独白.txt"))) {
            bw.write("百里守约");
            bw.write("\t百里玄策");
            // 黄航
            bw.newLine();
            bw.write("王昭君");
            bw.write("\t李白");
            bw.newLine();

            //
            bw.flush();

        } catch (IOException e) {
            e.printStackTrace();
        }


    }




}
